Many computing environments may utilize remote procedure calls for transporting communication. For example, remote procedure calls may be used as inter-process communication, such as where an application may use a remote procedure call to cause a procedure to execute and provide a result. Open network computing remote procedure calls (ONCRPC) may be used to serialize data, such as by using an external data representation, which may be delivered to a destination using a user datagram protocol (UDP) and/or a transmission control protocol (TCP). A port mapper may provide access to remote procedure call services on a machine by listening for remote procedure call requests on a port over UDP and TCP.
A remote procedure call may comprise various stages of processing, such as reading a header of the remote procedure call, reading inputs from the remote procedure call, calling a remote procedure to execute functionality based upon the inputs, reading outputs from the remote procedure, and replying to a requestor that sent the remote procedure call. Various issues may arise with remote procedure calls, such as where a single requestor application may monopolize resources by repeatedly sending remote procedure call requests to a host computer of a remote procedure due to being stuck in a loop, and thus other applications may be starved from accessing remote procedure resources. Because remote procedure calls are handled in a synchronous manner, a long running remote procedure call may block the execution of other remote procedure calls (e.g., a thread used to execute the long running remote procedure call may be locked until I/O is completed, such as while the long running remote procedure call is waiting on output from a remote procedure). In this way, it may be difficult to scale inter-process communication due to a lack of remote procedure call management.